package io;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.nio.charset.StandardCharsets;

/**
 * 字符流:java.io.Reader和java.io.Writer
 * 上述两个流是抽象类, 是所有字符流的超类, 定义了所有字符流都具备的读写字符的操作
 * 字符流都是高级流
 * 转换流:java.io.InputStreamReader和java.io.OutputStreamWriter
 * 转换流是一对常用的字符流的实现类, 实际开发中我们不会直接操作转换流, 但在榴莲接种他们非常重要
 * 本案例演示转换流OutputStreamWriter的写出操作----介绍为主
 */
public class OswDemo {
    public static void main(String[] args) throws IOException {
        FileOutputStream fos = new FileOutputStream("osw.txt");
        /*
         * 转换流在创建时可以明确字符集,通过它写出的文字都会使用该字符集来转换为字节
         */
        OutputStreamWriter osw = new OutputStreamWriter(fos, StandardCharsets.UTF_8);
        osw.write("吹眠不觉晓, 处处闻啼鸟.");
        osw.write("夜来风雨声, 花落知多少.");
        System.out.println("写出完毕");
        osw.close();
    }
}
